﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using MBWebService.Core.Classes;
using MBWebService.Core.Enums;
using System.Runtime.Serialization;

namespace MBWebService.Core.Interfaces
{
    [ServiceContract]
    public interface IMediaBrowserCallback
    {
        /// <summary>
        /// Plays a specific item given its Id
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        [OperationContract]
        bool PlayItem(MediaCollection id, bool queue);

        /// <summary>
        /// Gets an object representing what is currently playing in Media Center
        /// </summary>
        /// <param name="waitForUpdate"></param>
        /// <returns></returns>
        [OperationContract]
        NowPlayingItem GetNowPlaying(bool waitForUpdate);

        /// <summary>
        /// Sends a command for Media Center to perform
        /// </summary>
        /// <param name="command"></param>
        [OperationContract]
        void SendCommand(CommandTypes command);

        /// <summary>
        /// Seeks to a specific time (in seconds) for the currently playing item
        /// </summary>
        /// <param name="seconds">Time in seconds</param>
        [OperationContract]
        void Seek(int seconds);

        /// <summary>
        /// Tells media Center to go to a specific screen
        /// </summary>
        /// <param name="screenType">The screen to go to</param>
        /// <param name="extraInfo">Any extra information for the screen in question</param>
        [OperationContract]
        void GoToScreen(ScreenType screenType, string extraInfo);
    }
}
